
$(document).ready(function() {
    listar();      

    $(".cerrarVentanaEditar").click(function() {
        //hace que todos los campos del form se reseteen
        $("#actualizarForm")[0].reset();
        //hace que los mensajes e iconos de validación desaparezcan.
        $("#actualizarForm").data('bootstrapValidator').resetForm();

    });

    $('#agregarForm').bootstrapValidator({
        // To use feedback icons, ensure that you use Bootstrap v3.1.0 or later
        feedbackIcons: {
            valid: 'glyphicon glyphicon-ok',
            invalid: 'glyphicon glyphicon-remove',
            validating: 'glyphicon glyphicon-refresh'
        },
        fields: {
            descripcion: {
                validators: {
                    notEmpty: {
                        message: 'La descripci&oacute;n no puede estar vac&iacute;o'
                    },
                    stringLength: {
                        min: 1,
                        max: 45,
                        message: 'La descripci&oacute;n debe tener como m&aacute;ximo 45 caracteres'
                    }
                }
            }
        }
    }).on('success.form.bv', function(e) {
        // Prevent form submission
        e.preventDefault();

        // Get the form instance
        var $form = $(e.target);

        // Get the BootstrapValidator instance
        var bv = $form.data('bootstrapValidator');

        agregar();

    });

    $('#actualizarForm').bootstrapValidator({
        // To use feedback icons, ensure that you use Bootstrap v3.1.0 or later
        feedbackIcons: {
            valid: 'glyphicon glyphicon-ok',
            invalid: 'glyphicon glyphicon-remove',
            validating: 'glyphicon glyphicon-refresh'
        },
        fields: {
            descripcion: {
                validators: {
                    notEmpty: {
                        message: 'La descripci&oacute;n no puede estar vac&iacute;o'
                    },
                    stringLength: {
                        min: 1,
                        max: 45,
                        message: 'La descripci&oacute;n debe tener como m&aacute;ximo 45 caracteres'
                    }
                }
            }
        }
    }).on('success.form.bv', function(e) {
        // Prevent form submission
        e.preventDefault();

        // Get the form instance
        var $form = $(e.target);

        // Get the BootstrapValidator instance
        var bv = $form.data('bootstrapValidator');

        actualizar();

    });
    
});
/*
 *para llamar solo si se agrega un nuevo elemento se actualiza 
 *para listar en la asociacion 
 */
function agregar() {
    var objeto = new Object();
    objeto.descripcion = $("#inputDescripcion").val();    

    $.ajax({
        url: '/EmergenciasWAR/diagnosticos',
        dataType: 'json',
        type: 'POST',
        data: JSON.stringify(objeto),
        success: function(data) {
            console.log("Respuesta: " + data.estado);
            if (data.estado == "0") {
                bootbox.alert(data.mensaje);
                listar();

                //hace que todos los campos del form se reseteen
                $("#agregarForm")[0].reset();
                //hace que los mensajes e iconos de validación desaparezcan.
                $("#agregarForm").data('bootstrapValidator').resetForm();
                                                
            } else {
                bootbox.alert(data.mensaje);
                //habilita de nuevo el boton de guardar
                $("#buttonGuardar").prop("disabled", false);
            }

        },
        error: function() {
            bootbox.alert("Datos no guardados. Intente de nuevo");
            //habilita de nuevo el boton de guardar
            $("#buttonGuardar").prop("disabled", false);
        }
    });
}

function actualizar() {
    var objeto = new Object();
    objeto.descripcion = $("#inputActDescripcion").val();

    $.ajax({
        url: '/EmergenciasWAR/diagnosticos',
        dataType: 'json',
        type: 'put',
        data: JSON.stringify(objeto),
        success: function(data) {

            if (data.estado == "0") {
                bootbox.alert(data.mensaje);
                listar();

                //hace que todos los campos del form se reseteen
                $("#actualizarForm")[0].reset();
                //hace que los mensajes e iconos de validación desaparezcan.
                $("#actualizarForm").data('bootstrapValidator').resetForm();

                $('#myModal').modal('hide');
                $('#myModal').css("visibility", "hidden");
            } else {
                bootbox.alert(data.mensaje);
                //habilita de nuevo el boton de guardar
                $("#buttonActualizar").prop("disabled", false);
            }

        },
        error: function() {
            bootbox.alert("Datos no actualizados. Intente de nuevo");
            //habilita de nuevo el boton de guardar
            $("#buttonActualizar").prop("disabled", false);
        }
    });
}

function listar() {
    $("#assigned-vm-table").find('tbody').empty();
    $.ajax({
        url: '/EmergenciasWAR/diagnosticos',
        dataType: 'json',
        type: 'get',
        success: function(data) {
            var row = "<tr class='warning'><th></th><th>Descripci&oacute;n</th></tr>";
            var visible = "";
            if (data.estado == "0") {
                if (data.datos.length > 0) {
                    $.each(data.datos, function(i, item) {

                        row += "<tr id='" + item.idDiagnostico + "'><td><a onclick='getDetalle($(this).parent().parent()," +
                                item.idPersona + "); ' title='Editar Fila'><i class='glyphicon glyphicon-edit'/> editar</a></td>";
                        row += "<td><input id='sector-tmp' type='hidden' value='" + item.descripcion + "'/>" +
                                item.descripcion + "</td>";
                        
                    });
                } else {
                    row += "<tr><td>No existen diagn&oacute;sticos que listar.</td></tr>";
                }

            } else {
                row += "<tr><td>" + data.mensaje + "</td></tr>";

            }
            $("#assigned-vm-table").find('tbody').append(row);
        },
        error: function(a, b, c) {
            bootbox.alert("No se puede listar los diagn&oacute;sticos. Intente de nuevo");
        }

    });
}

function getDetalle(trId, id) {

    var usuario = new Object();
    usuario.id_usuario = parseInt(id);
    $.ajax({
        url: '/EmergenciasWAR/diagnosticos/' + id,
        dataType: 'json',
        type: 'get',        
        success: function(data) {
            if (data.estado == "0") {
                $("#inputActDescripcion").val(data.datos[0].descripcion);                

                //manda por debajo el id para luego poder modificar en la db
                $("#inputActIdDescripcion").val(data.datos[0].idDiagnostico);

                $('#myModal').modal('show');
                $('#myModal').css("visibility", "visible");
            } else {
                bootbox.alert(data.mensaje);
            }

        },
        error: function(a, b, c) {
            alert("Ocurrio un error. Intente de nuevo m&aacute;s tarde.");
        }

    });
}
